package com.fulihui.wgj.biz;


import com.fulihui.wgj.dal.mybatis.domain.TemplateAutoLog;
import com.fulihui.wgj.dal.mybatis.domain.TemplateAutoTask;
import com.fulihui.wgj.facade.request.autotask.AutoTaskSaveRequest;
import com.fulihui.wgj.facade.request.autotask.CalcAutoCountRequest;
import com.fulihui.wgj.facade.request.template.CalcSendCountRequest;

/**
 * 自动化任务业务
 *
 * @author wang_wx
 * @date 2018-08-02
 */
public interface AutoTaskBiz {

    /**
     * 自动化任务条件转换成发送条件
     *
     * @param request
     * @return 不包含关注时间 需要动态计算
     */
    CalcSendCountRequest trance2CalcSendRequest(CalcAutoCountRequest request);

    /**
     * 保存自动化任务
     *
     * @param request
     * @return 自动化任务id
     */
    Long saveTaskByRequest(AutoTaskSaveRequest request);

    /**
     * 更新自动化任务
     *
     * @param request
     * @return 更新成功条数
     */
    Integer updateTaskByRequest(AutoTaskSaveRequest request);

    /**
     * 发送自动化任务
     *
     * @param calcSendCountRequest 条件
     * @param templateAutoTask     自动化任务
     * @param templateAutoLog      自动任务发送记录
     */
    void sendAutoMsg(CalcSendCountRequest calcSendCountRequest, TemplateAutoTask templateAutoTask, TemplateAutoLog templateAutoLog);
}
